package com.jic.order.mapper;

import com.jic.order.entity.OrderAfterSaleApplyModel;
import com.jic.order.entity.OrderPayDetail;
import com.jic.order.request.OrderAfterSaleApplyBatchRequest;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 订单售后申请 Mapper 接口
 *
 * @author xuyongliang
 * @since 2020-02-01
 */
@Mapper
public interface OrderAfterSaleApplyMapper {

	/**
	 * 订单售后应用添加 订单售后申请 新增
	 *
	 * @param skuModel sku模型
	 * @return {@link Integer}
	 */
	Integer orderAfterSaleApplyAdd(OrderAfterSaleApplyModel skuModel);

	/**
	 * description: 订单售后修改
	 *
	 * @author: jackHe
	 * @time: 2020/5/7 16:09
	 */
	Integer orderAfterSaleUpdate(OrderAfterSaleApplyBatchRequest modelEntity);

	/**
	 * 订单售后应用编辑 订单售后申请 编辑
	 *
	 * @param record  记录
	 * @param example 例子
	 * @return {@link Integer}
	 */
	Integer orderAfterSaleApplyEdit(@Param("record") OrderAfterSaleApplyModel record, @Param("example") OrderAfterSaleApplyModel example);

	/**
	 * 订单售后申请 删除
	 *
	 * @param map 地图
	 * @return {@link Integer}
	 */
	Integer orderAfterSaleApplyDelete(Map map);

	/**
	 * 订单售后申请查询 订单售后申请 查询详情
	 *
	 * @param map 地图
	 * @return {@link OrderAfterSaleApplyModel}
	 */
	OrderAfterSaleApplyModel orderAfterSaleApplyQuery(Map map);

	/**
	 * 订单售后申请查询页面列表 订单售后申请 分页查询
	 *
	 * @param startIndex 开始指数
	 * @param limit      限制
	 * @param example    例子
	 * @return {@link List<OrderAfterSaleApplyModel>}
	 */
	List<OrderAfterSaleApplyModel> orderAfterSaleApplyQueryPageList(
			@Param("startIndex") int startIndex,
			@Param("limit") int limit,
			@Param("example") OrderAfterSaleApplyModel example);

	/**
	 * 订单售后申请查询页面数 订单售后申请 分页查询数量
	 *
	 * @param example 例子
	 * @return {@link Integer}
	 */
	Integer orderAfterSaleApplyQueryPageCount(@Param("example") OrderAfterSaleApplyModel example);

	/**
	 * 订单售后应用改变状态 订单售后申请 修改单据状态
	 *
	 * @param map 地图
	 * @return {@link Integer}
	 */
	Integer orderAfterSaleApplyChangeStatus(Map map);

	/**
	 * 订单售后应用更改批准状态 订单售后申请 修改审批状态
	 *
	 * @param map 地图
	 * @return {@link Integer}
	 */
	Integer orderAfterSaleApplyChangeApproveStatus(Map map);

	/**
	 * 订单售后申请查询状态数列表 订单售后申请 分页查询数量
	 *
	 * @param memberId   成员身份
	 * @param statusList 状态列表
	 * @return {@link Integer}
	 */
	Integer orderAfterSaleApplyQueryStatusListCount(@Param("memberId") Long memberId, @Param("statusList") List<Integer> statusList);

	/**
	 * 查询所有
	 *
	 * @param orderAfterSaleApplyModel 订单售后应用模型
	 * @return {@link List<OrderAfterSaleApplyModel>}
	 */
	List<OrderAfterSaleApplyModel> queryByAll(OrderAfterSaleApplyModel orderAfterSaleApplyModel);

	Integer updateAfterSale(OrderAfterSaleApplyModel orderAfterSaleApplyModel);

	Integer queryAfterSaleCountByMemberId(Long memberId);


    List<OrderAfterSaleApplyModel> queryPage(@Param("startIndex") int startIndex, @Param("limit") int limit, @Param("orderAfterSaleApplyModel") OrderAfterSaleApplyModel orderAfterSaleApplyModel);

    long queryPageCount(OrderAfterSaleApplyModel orderAfterSaleApplyModel);

}
